#include <iostream>
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

void solve() {
    int n, t;
    cin >> n >> t;
    vector<int> array(n + 2);
    ll sum = 0;
    bool ans = false;
    for (int i = 1; i <= n; i++) {
        cin >> array[i];
        sum += array[i];
        if (array[i] <= t) {
            ans = true;
        }
    }
    if (!ans) {
        cout << n << "\n";
        return;
    }
    if (sum <= t) {
        cout << 0 << "\n";
        return;
    }

//    int l = 1;
//    int r = n;
//    while (l < r) {
//
//
//
//    }
    for (int k = 1; k < n; k++) {
        vector<vector<int>> dp(n + 1, vector<int>(2));
        dp[1][0] = 0;
        dp[1][1] = array[1];
        for (int i = 2; i <= n; i++) {
            int p = i - k >= 1 ? i - k : 1;
            dp[i][0] = dp[p][1];
            int mi = dp[p - 1][1];
            for (int t = p; t <= i - 1; t++) {
                mi = min(mi, min(dp[t][0], dp[t][1]));
            }
            dp[i][1] = mi + array[i];
        }
        for (int i = 1; i <= n; i++) {
            for (int j = 0; j <= 1; j++) {
                cout << dp[i][j] << " ";
            }
            cout << "\n";
        }
        cout << "\n";

        if (dp[n][0] <= t || dp[n][1] <= t) {
            cout << k << "\n";
            return;
        }
    }
    cout << n << "\n";
    return;

}

int main() {

    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);

    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}


//#include <iostream>
//#include <bits/stdc++.h>
//
//using namespace std;
//using ll = long long;
//
//void solve() {
//    int n, t;
//    cin >> n >> t;
//    vector<int> array(n + 2);
//    ll sum = 0;
//    for (int i = 1; i <= n; i++) {
//        cin >> array[i];
//        sum += array[i];
//    }
//    int k = 0;
//    if (sum > t) {
//        k++;
//    }
//
//
//    for (; k <= n; k++) {
//        vector<vector<int>> dp(n + 1, vector<int>(2));
//        dp[1][0] = 0;
//        dp[1][1] = array[1];
//        for (int i = 2; i <= n; i++) {
//            int p = i - k > 0 ? i - k : 0;
//            dp[i][0] = dp[p][1];
//            dp[i][1] = min(min(dp[p][1], dp[i - 1][1]), dp[i - 1][0]) + array[i];
//        }
////        for (int i = 1; i <= n; i++) {
////            for (int j = 0; j <= 1; j++) {
////                cout << dp[i][j] << " ";
////            }
////            cout << "\n";
////        }
////        cout << "\n";
//
//        if (dp[n][0] <= t || dp[n][1] <= t) {
//            cout << k << "\n";
//            return;
//        }
//    }
//
//
//}
//
//int main() {
//
//    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//
//    int t;
//    cin >> t;
//    while (t--) {
//        solve();
//    }
//    return 0;
//}